import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 设置中文字体
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)

# 加载CSV文件
sales_data_path = 'D:\project-2024-AA\联合.csv'
user_data_path = 'D:\project-2024-AA\data\sys_user.csv'

sales_data = pd.read_csv(sales_data_path)
user_data = pd.read_csv(user_data_path)

# 转换fhjl_time为datetime格式
sales_data['fhjl_time'] = pd.to_datetime(sales_data['fhjl_time'])

# 合并sales_data和user_data
merged_data = pd.merge(sales_data, user_data, left_on='sales_name', right_on='user_name', how='left')

# 替换sales_name为nick_name
merged_data['sales_name'] = merged_data['nick_name']

# 删除多余的列
merged_data = merged_data.drop(columns=['user_name', 'nick_name', 'user_id'])

# 过滤2023年的数据
data_2023 = merged_data[merged_data['fhjl_time'].dt.year == 2023]

# 按销售经理分组并汇总发货吨位（fhdw）
sales_manager_contribution = data_2023.groupby('sales_name')['fhdw'].sum().sort_values(ascending=False)

# 可视化销售经理的贡献度（横纵坐标换位，按销量降序排）
plt.figure(figsize=(14, 8))
ax = sales_manager_contribution.sort_values().plot(kind='barh', figsize=(14, 8), color='skyblue', edgecolor='black')
plt.title('2023年销售经理贡献度（吨）', fontproperties=font)
plt.ylabel('销售经理', fontproperties=font)
plt.xlabel('销量（吨）', fontproperties=font)
plt.grid(True, linestyle='--', linewidth=0.5)

# 在柱状图上显示具体数据
for container in ax.containers:
    ax.bar_label(container, fmt='%.0f 吨', fontproperties=font, label_type='edge')

# 设置y轴的刻度字体
ax.set_yticklabels(ax.get_yticklabels(), fontproperties=font)

plt.tight_layout()
plt.show()

# 打印销售经理的贡献度
print("销售经理贡献度：")
print(sales_manager_contribution)



